home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / tri14dev.lha / Triton / Developer / Include / libraries / triton.h
C/C++ Source or Header  |  1995-08-25  |  47KB  |  846 lines

  1. #ifndef LIBRARIES_TRITON_H
  2. #define LIBRARIES_TRITON_H
  3.  
  4. /*
  5. **    $VER: triton.h 5.1 (15.8.95)
  6. **    Triton Release 1.4
  7. **
  8. **    triton.library definitions
  9. **
  10. **    (C) Copyright 1993-1995 Stefan Zeiger
  11. **    All Rights Reserved
  12. */
  13.  
  14. #define    TRITONNAME              "triton.library"
  15. #define    TRITON10VERSION         1L
  16. #define    TRITON11VERSION         2L
  17. #define    TRITON12VERSION         3L
  18. #define    TRITON13VERSION         4L
  19. #define    TRITON14VERSION         5L
  20.  
  21.  
  22. /* ////////////////////////////////////////////////////////////////////// */
  23. /* ////////////////////////////////////////////////////////// Includes // */
  24. /* ////////////////////////////////////////////////////////////////////// */
  25.  
  26. #define INTUI_V36_NAMES_ONLY
  27.  
  28. #ifndef EXEC_TYPES_H
  29. #include <exec/types.h>
  30. #endif
  31.  
  32. #ifndef INTUITION_INTUITIONBASE_H
  33. #include <intuition/intuitionbase.h>
  34. #endif
  35.  
  36. #ifndef INTUITION_INTUITION_H
  37. #include <intuition/intuition.h>
  38. #endif
  39.  
  40. #ifndef INTUITION_GADGETCLASS_H
  41. #include <intuition/gadgetclass.h>
  42. #endif
  43.  
  44. #ifndef INTUITION_IMAGECLASS_H
  45. #include <intuition/imageclass.h>
  46. #endif
  47.  
  48. #ifndef INTUITION_CLASSUSR_H
  49. #include <intuition/classusr.h>
  50. #endif
  51.  
  52. #ifndef GRAPHICS_GFX_H
  53. #include <graphics/gfx.h>
  54. #endif
  55.  
  56. #ifndef GRAPHICS_GFXBASE_H
  57. #include <graphics/gfxbase.h>
  58. #endif
  59.  
  60. #ifndef GRAPHICS_GFXMACROS_H
  61. #include <graphics/gfxmacros.h>
  62. #endif
  63.  
  64. #ifndef LIBRARIES_GADTOOLS_H
  65. #include <libraries/gadtools.h>
  66. #endif
  67.  
  68. #ifndef LIBRARIES_DISKFONT_H
  69. #include <libraries/diskfont.h>
  70. #endif
  71.  
  72. #ifndef UTILITY_TAGITEM_H
  73. #include <utility/tagitem.h>
  74. #endif
  75.  
  76. #ifndef WORKBENCH_STARTUP_H
  77. #include <workbench/startup.h>
  78. #endif
  79.  
  80. #ifndef WORKBENCH_WORKBENCH_H
  81. #include <workbench/workbench.h>
  82. #endif
  83.  
  84.  
  85. /* ////////////////////////////////////////////////////////////////////// */
  86. /* //////////////////////////////////////////////// Some useful things // */
  87. /* ////////////////////////////////////////////////////////////////////// */
  88.  
  89. #ifndef max
  90. #define max(a,b) ((a)>(b)?(a):(b))
  91. #endif
  92.  
  93. #ifndef min
  94. #define min(a,b) ((a)<=(b)?(a):(b))
  95. #endif
  96.  
  97.  
  98. /* ////////////////////////////////////////////////////////////////////// */
  99. /* //////////////////////////////////////////////////////////// Macros // */
  100. /* ////////////////////////////////////////////////////////////////////// */
  101.  
  102. #ifndef TR_NOMACROS
  103.  
  104. /* Project */
  105. #define ProjectDefinition(name) struct TagItem name[]=
  106. #define EndProject              TAG_END
  107. #define WindowTitle(t)          TRWI_Title,(ULONG)(t)
  108. #define ScreenTitle(t)          TRWI_ScreenTitle,(ULONG)(t)
  109. #define WindowID(id)            TRWI_ID,(ULONG)(id)
  110. #define WindowFlags(f)          TRWI_Flags,(ULONG)(f)
  111. #define WindowPosition(pos)     TRWI_Position,(ULONG)(pos)
  112. #define WindowUnderscore(und)   TRWI_Underscore,(ULONG)(und)
  113. #define WindowDimensions(dim)   TRWI_Dimensions,(ULONG)(dim)
  114. #define WindowBackfillWin       TRWI_Backfill,TRBF_WINDOWBACK
  115. #define WindowBackfillReq       TRWI_Backfill,TRBF_REQUESTERBACK
  116. #define WindowBackfillNone      TRWI_Backfill,TRBF_NONE
  117. #define WindowBackfillS         TRWI_Backfill,TRBF_SHINE
  118. #define WindowBackfillSA        TRWI_Backfill,TRBF_SHINE_SHADOW
  119. #define WindowBackfillSF        TRWI_Backfill,TRBF_SHINE_FILL
  120. #define WindowBackfillSB        TRWI_Backfill,TRBF_SHINE_BACKGROUND
  121. #define WindowBackfillA         TRWI_Backfill,TRBF_SHADOW
  122. #define WindowBackfillAF        TRWI_Backfill,TRBF_SHADOW_FILL
  123. #define WindowBackfillAB        TRWI_Backfill,TRBF_SHADOW_BACKGROUND
  124. #define WindowBackfillF         TRWI_Backfill,TRBF_FILL
  125. #define WindowBackfillFB        TRWI_Backfill,TRBF_FILL_BACKGROUND
  126. #define CustomScreen(scr)       TRWI_CustomScreen,((ULONG)(scr))
  127. #define PubScreen(scr)          TRWI_PubScreen,((ULONG)(scr))
  128. #define PubScreenName(name)     TRWI_PubScreenName,((ULONG)(name))
  129. #define QuickHelpOn(on)         TRWI_QuickHelp,((ULONG)(on))
  130.  
  131. /* Menus */
  132. #define BeginMenu(t)            TRMN_Title,(ULONG)(t)
  133. #define MenuFlags(f)            TRMN_Flags,(f)
  134. #define MenuItem(t,id)          TRMN_Item,(ULONG)(t),TRAT_ID,id
  135. #define MenuItemC(t,id)         TRMN_Item,(ULONG)(t),TRMN_Flags,TRMF_CHECKIT,TRAT_ID,id
  136. #define MenuItemCC(t,id)        TRMN_Item,(ULONG)(t),TRMN_Flags,TRMF_CHECKED,TRAT_ID,id
  137. #define BeginSub(t)             TRMN_Item,(ULONG)(t)
  138. #define MenuItemD(t,id)         TRMN_Item,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
  139. #define SubItem(t,id)           TRMN_Sub,(ULONG)(t),TRAT_ID,id
  140. #define SubItemD(t,id)          TRMN_Sub,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
  141. #define ItemBarlabel            TRMN_Item,TRMN_BARLABEL
  142. #define SubBarlabel             TRMN_Sub,TRMN_BARLABEL
  143.  
  144. /* Groups */
  145. #define HorizGroup              TRGR_Horiz,0L
  146. #define HorizGroupE             TRGR_Horiz,TRGR_EQUALSHARE
  147. #define HorizGroupS             TRGR_Horiz,TRGR_PROPSPACES
  148. #define HorizGroupA             TRGR_Horiz,TRGR_ALIGN
  149. #define HorizGroupEA            TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN
  150. #define HorizGroupSA            TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN
  151. #define HorizGroupC             TRGR_Horiz,TRGR_CENTER
  152. #define HorizGroupEC            TRGR_Horiz,TRGR_EQUALSHARE|TRGR_CENTER
  153. #define HorizGroupSC            TRGR_Horiz,TRGR_PROPSPACES|TRGR_CENTER
  154. #define HorizGroupAC            TRGR_Horiz,TRGR_ALIGN|TRGR_CENTER
  155. #define HorizGroupEAC           TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  156. #define HorizGroupSAC           TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
  157. #define VertGroup               TRGR_Vert,0L
  158. #define VertGroupE              TRGR_Vert,TRGR_EQUALSHARE
  159. #define VertGroupS              TRGR_Vert,TRGR_PROPSPACES
  160. #define VertGroupA              TRGR_Vert,TRGR_ALIGN
  161. #define VertGroupEA             TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN
  162. #define VertGroupSA             TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN
  163. #define VertGroupC              TRGR_Vert,TRGR_CENTER
  164. #define VertGroupEC             TRGR_Vert,TRGR_EQUALSHARE|TRGR_CENTER
  165. #define VertGroupSC             TRGR_Vert,TRGR_PROPSPACES|TRGR_CENTER
  166. #define VertGroupAC             TRGR_Vert,TRGR_ALIGN|TRGR_CENTER
  167. #define VertGroupEAC            TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  168. #define VertGroupSAC            TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
  169. #define EndGroup                TRGR_End,0L
  170. #define ColumnArray             TRGR_Horiz,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
  171. #define LineArray               TRGR_Vert,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
  172. #define BeginColumn             TRGR_Vert,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
  173. #define BeginLine               TRGR_Horiz,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
  174. #define BeginColumnI            TRGR_Vert,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER|TRGR_INDEP
  175. #define BeginLineI              TRGR_Horiz,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER|TRGR_INDEP
  176. #define EndColumn               EndGroup
  177. #define EndLine                 EndGroup
  178. #define EndArray                EndGroup
  179.  
  180. /* DisplayObject */
  181. #define QuickHelp(str)          TRDO_QuickHelpString,((ULONG)(str))
  182.  
  183. /* Space */
  184. #define SpaceB                  TROB_Space,TRST_BIG
  185. #define Space                   TROB_Space,TRST_NORMAL
  186. #define SpaceS                  TROB_Space,TRST_SMALL
  187. #define SpaceN                  TROB_Space,TRST_NONE
  188.  
  189. /* Text */
  190. #define TextN(text)             TROB_Text,0L,TRAT_Text,(ULONG)text
  191. #define TextH(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_HIGHLIGHT
  192. #define Text3(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_3D
  193. #define TextB(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_BOLD
  194. #define TextT(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_TITLE
  195. #define TextID(text,id)         TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_ID,id
  196. #define TextNR(t)               TextN(t),TRAT_Flags,TROF_RIGHTALIGN
  197. #define ClippedText(t)          TextN(t),TRAT_Flags,TRTX_CLIPPED|TRTX_NOUNDERSCORE
  198. #define ClippedTextID(t,id)     TextN(t),TRAT_Flags,TRTX_CLIPPED|TRTX_NOUNDERSCORE,TRAT_ID,id
  199. #define CenteredText(text)      HorizGroupSC,Space,TextN(text),Space,EndGroup
  200. #define CenteredTextH(text)     HorizGroupSC,Space,TextH(text),Space,EndGroup
  201. #define CenteredText3(text)     HorizGroupSC,Space,Text3(text),Space,EndGroup
  202. #define CenteredTextB(text)     HorizGroupSC,Space,TextB(text),Space,EndGroup
  203. #define CenteredTextID(text,id) HorizGroupSC,Space,TextID(text,id),Space,EndGroup
  204. #define CenteredText_BS(text)   HorizGroupSC,SpaceB,TextN(text),SpaceB,EndGroup
  205. #define TextBox(text,id,mwid)   _TextBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, TextN(text),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
  206. #define ClippedTextBox(text,id) _TextBox, ObjectBackfillB, VertGroupAC, SpaceS, HorizGroupAC, Space, ClippedTextID(text,id), Space, EndGroup, SpaceS, EndGroup
  207. #define ClippedTextBoxMW(text,id,mwid) _TextBox, ObjectBackfillB, VertGroupAC, SpaceS, HorizGroupAC, Space, ClippedTextID(text,id),TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
  208. #define TextRIGHT(t,id)         HorizGroupS, Space, TextN(t), ID(id), EndGroup
  209. #define Integer(i)              TROB_Text,0L,TRAT_Value,(ULONG)(i)
  210. #define IntegerH(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_HIGHLIGHT
  211. #define Integer3(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_3D
  212. #define IntegerB(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_BOLD
  213. #define CenteredInteger(i)      HorizGroupSC,Space,Integer(i),Space,EndGroup
  214. #define CenteredIntegerH(i)     HorizGroupSC,Space,IntegerH(i),Space,EndGroup
  215. #define CenteredInteger3(i)     HorizGroupSC,Space,Integer3(i),Space,EndGroup
  216. #define CenteredIntegerB(i)     HorizGroupSC,Space,IntegerB(i),Space,EndGroup
  217. #define IntegerBox(def,id,mwid) GroupBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, Integer(def),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
  218.  
  219. /* Button */
  220. #define Button(text,id)         TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id)
  221. #define ButtonR(text,id)        TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_RETURNOK
  222. #define ButtonE(text,id)        TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_ESCOK
  223. #define ButtonRE(text,id)       TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK
  224. #define CenteredButton(t,i)     HorizGroupSC,Space,TROB_Button,0L,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  225. #define CenteredButtonR(t,i)    HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_RETURNOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  226. #define CenteredButtonE(t,i)    HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_ESCOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  227. #define CenteredButtonRE(t,i)   HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  228. #define EmptyButton(id)         TROB_Button,0L,TRAT_Text,(ULONG)"",TRAT_ID,(id)
  229. #define GetFileButton(id)       TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)"",TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  230. #define GetDrawerButton(id)     TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)"",TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  231. #define GetEntryButton(id)      TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)"",TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  232. #define GetFileButtonS(s,id)    TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)(s),TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  233. #define GetDrawerButtonS(s,id)  TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)(s),TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  234. #define GetEntryButtonS(s,id)   TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)(s),TRAT_ID,(id),TRAT_Flags,TRBU_YRESIZE
  235.  
  236. /* Line */
  237. #define Line(flags)             TROB_Line,flags
  238. #define HorizSeparator          HorizGroupEC,Space,Line(TROF_HORIZ),Space,EndGroup
  239. #define VertSeparator           VertGroupEC,Space,Line(TROF_VERT),Space,EndGroup
  240. #define NamedSeparator(text)    HorizGroupEC,Space,Line(TROF_HORIZ),Space,TextT(text),Space,Line(TROF_HORIZ),Space,EndGroup
  241. #define NamedSeparatorI(te,id)  HorizGroupEC,Space,Line(TROF_HORIZ),Space,TextT(te),TRAT_ID,id,Space,Line(TROF_HORIZ),Space,EndGroup
  242. #define NamedSeparatorN(text)   HorizGroupEC,Line(TROF_HORIZ),Space,TextT(text),Space,Line(TROF_HORIZ),EndGroup
  243. #define NamedSeparatorIN(te,id) HorizGroupEC,Line(TROF_HORIZ),Space,TextT(te),TRAT_ID,id,Space,Line(TROF_HORIZ),EndGroup
  244.  
  245. /* FrameBox */
  246. #define GroupBox                TROB_FrameBox,TRFB_GROUPING
  247. #define NamedFrameBox(t)        TROB_FrameBox,TRFB_FRAMING,TRAT_Text,(ULONG)(t)
  248. #define _TextBox                TROB_FrameBox,TRFB_TEXT
  249.  
  250. /* DropBox */
  251. #define DropBox(id)             TROB_DropBox,0L,TRAT_ID,(id)
  252.  
  253. /* CheckBox gadget */
  254. #define CheckBox(id)            TROB_CheckBox,0L,TRAT_ID,id
  255. #define CheckBoxC(id)           TROB_CheckBox,0L,TRAT_ID,id,TRAT_Value,TRUE
  256. #define CheckBoxLEFT(id)        HorizGroupS, CheckBox(id), Space, EndGroup
  257. #define CheckBoxCLEFT(id)       HorizGroupS, CheckBoxC(id), Space, EndGroup
  258.  
  259. /* String gadget */
  260. #define StringGadget(def,id)    TROB_String,(ULONG)def,TRAT_ID,(id)
  261. #define PasswordGadget(def,id)  TROB_String,(ULONG)def,TRAT_ID,(id),TRAT_Flags,TRST_INVISIBLE
  262.  
  263. /* Cycle gadget */
  264. #define CycleGadget(ent,val,id) TROB_Cycle,(ULONG)ent,TRAT_ID,(id),TRAT_Value,(val)
  265. #define MXGadget(ent,val,id)    TROB_Cycle,(ULONG)ent,TRAT_ID,(id),TRAT_Value,(val),TRAT_Flags,TRCY_MX
  266. #define MXGadgetR(ent,val,id)   TROB_Cycle,(ULONG)ent,TRAT_ID,(id),TRAT_Value,(val),TRAT_Flags,TRCY_MX|TRCY_RIGHTLABELS
  267.  
  268. /* Slider gadget */
  269. #define SliderGadget(mini,maxi,val,id) TROB_Slider,0L,TRSL_Min,(mini),TRSL_Max,(maxi),TRAT_ID,(id),TRAT_Value,(val)
  270.  
  271. /* Palette gadget */
  272. #define PaletteGadget(val,id)   TROB_Palette,0L,TRAT_ID,(id),TRAT_Value,(val)
  273.  
  274. /* Listview gadget */
  275. #define ListRO(ent,id,top)      TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  276. #define ListSel(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  277. #define ListSS(e,id,top,v)      TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  278. #define ListROC(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  279. #define ListSelC(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  280. #define ListSSC(e,id,top,v)     TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  281. #define ListRON(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  282. #define ListSelN(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  283. #define ListSSN(e,id,top,v)     TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  284. #define ListROCN(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  285. #define ListSelCN(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  286. #define ListSSCN(e,id,top,v)    TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  287.  
  288. #define FWListRO(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  289. #define FWListSel(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  290. #define FWListSS(e,id,top,v)    TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SHOWSELECTED,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  291. #define FWListROC(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  292. #define FWListSelC(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  293. #define FWListSSC(e,id,top,v)   TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  294. #define FWListRON(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  295. #define FWListSelN(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  296. #define FWListSSN(e,id,top,v)   TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  297. #define FWListROCN(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  298. #define FWListSelCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  299. #define FWListSSCN(e,id,top,v)  TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  300.  
  301. /* Progress indicator */
  302. #define Progress(maxi,val,id)   TROB_Progress,(maxi),TRAT_ID,(id),TRAT_Value,(val)
  303.  
  304. /* Image */
  305. #define BoopsiImage(img)        TROB_Image,(ULONG)(img),TRAT_Flags,TRIM_BOOPSI
  306. #define BoopsiImageD(img,mw,mh) TROB_Image,(ULONG)(img),TRAT_MinWidth,(mw),TRAT_MinHeight,(mh),TRAT_Flags,TRIM_BOOPSI
  307.  
  308. /* Attributes */
  309. #define ID(id)                  TRAT_ID,id
  310. #define Disabled                TRAT_Disabled,TRUE
  311. #define ObjectBackfillWin       TRAT_Backfill,TRBF_WINDOWBACK
  312. #define ObjectBackfillReq       TRAT_Backfill,TRBF_REQUESTERBACK
  313. #define ObjectBackfillB         TRAT_Backfill,TRBF_NONE
  314. #define ObjectBackfillS         TRAT_Backfill,TRBF_SHINE
  315. #define ObjectBackfillSA        TRAT_Backfill,TRBF_SHINE_SHADOW
  316. #define ObjectBackfillSF        TRAT_Backfill,TRBF_SHINE_FILL
  317. #define ObjectBackfillSB        TRAT_Backfill,TRBF_SHINE_BACKGROUND
  318. #define ObjectBackfillA         TRAT_Backfill,TRBF_SHADOW
  319. #define ObjectBackfillAF        TRAT_Backfill,TRBF_SHADOW_FILL
  320. #define ObjectBackfillAB        TRAT_Backfill,TRBF_SHADOW_BACKGROUND
  321. #define ObjectBackfillF         TRAT_Backfill,TRBF_FILL
  322. #define ObjectBackfillFB        TRAT_Backfill,TRBF_FILL_BACKGROUND
  323.  
  324. /* Requester support */
  325. #define BeginRequester(t,p)     WindowTitle(t),WindowPosition(p),WindowBackfillReq,\
  326.                                 WindowFlags(TRWF_NOZIPGADGET|TRWF_NOSIZEGADGET|TRWF_NOCLOSEGADGET|TRWF_NODELZIP|TRWF_NOESCCLOSE),\
  327.                                 VertGroupA,Space,HorizGroupA,Space,GroupBox,ObjectBackfillB
  328. #define BeginRequesterGads      Space,EndGroup,Space
  329. #define EndRequester            Space,EndGroup,EndProject
  330.  
  331. #endif /* TR_NOMACROS */
  332.  
  333.  
  334. /* ////////////////////////////////////////////////////////////////////// */
  335. /* /////////////////////////////////////////////////// Support library // */
  336. /* ////////////////////////////////////////////////////////////////////// */
  337.  
  338. #ifndef TR_NOSUPPORT
  339.  
  340. extern struct TR_App *__Triton_Support_App;
  341. extern struct IClass *TRIM_trLogo;
  342.  
  343. #ifndef TR_NOMACROS
  344. #ifndef __OBJAM__
  345. #define Application __Triton_Support_App
  346. #endif /* __OBJAM__ */
  347. #endif /* TR_NOMACROS */
  348.  
  349. #endif /* TR_NOSUPPORT */
  350.  
  351.  
  352. /* ////////////////////////////////////////////////////////////////////// */
  353. /* //////////////////////////////////////////////// The Triton message // */
  354. /* ////////////////////////////////////////////////////////////////////// */
  355.  
  356. struct TR_Message
  357. {
  358.   struct TR_Project *           trm_Project;    /* The project which triggered the message */
  359.   ULONG                         trm_ID;         /* The object's ID (where appropriate) */
  360.   ULONG                         trm_Class;      /* The Triton message class */
  361.   ULONG                         trm_Data;       /* The class-specific data */
  362.   ULONG                         trm_Code;       /* Currently only used by TRMS_KEYPRESSED */
  363.   ULONG                         trm_Qualifier;  /* IEQUALIFIERs */
  364.   ULONG                         trm_Seconds;    /* \ Copy of system clock time (Only where */
  365.   ULONG                         trm_Micros;     /* / available! If not set, trm_Seconds is 0) */
  366.   struct TR_App *               trm_App;        /* The project's application */
  367. };
  368.  
  369. /* Message classes */
  370. #define TRMS_CLOSEWINDOW        1L  /* The window should be closed */
  371. #define TRMS_ERROR              2L  /* An error occured. Error code in trm_Data */
  372. #define TRMS_NEWVALUE           3L  /* Object's value has changed. New value in trm_Data */
  373. #define TRMS_ACTION             4L  /* Object has triggered an action */
  374. #define TRMS_ICONDROPPED        5L  /* Icon dropped over window (ID=0) or DropBox. AppMessage* in trm_Data */
  375. #define TRMS_KEYPRESSED         6L  /* Key pressed. trm_Data contains ASCII code, trm_Code raw code and */
  376.                                     /* trm_Qualifier contains qualifiers */
  377. #define TRMS_HELP               7L  /* The user requested help for the specified ID */
  378. #define TRMS_DISKINSERTED       8L  /* A disk has been inserted into a drive */
  379. #define TRMS_DISKREMOVED        9L  /* A disk has been removed from a drive */
  380.  
  381.  
  382. /* ////////////////////////////////////////////////////////////////////// */
  383. /* //////////////////////////////////////////////// Triton error codes // */
  384. /* ////////////////////////////////////////////////////////////////////// */
  385.  
  386. #define TRER_OK                 0L        /* No error */
  387.  
  388. #define TRER_ALLOCMEM           1L        /* Not enough memory */
  389. #define TRER_OPENWINDOW         2L        /* Can't open window */
  390. #define TRER_WINDOWTOOBIG       3L        /* Window would be too big for screen */
  391. #define TRER_DRAWINFO           4L        /* Can't get screen's DrawInfo */
  392. #define TRER_OPENFONT           5L        /* Can't open font */
  393. #define TRER_CREATEMSGPORT      6L        /* Can't create message port */
  394. #define TRER_INSTALLOBJECT      7L        /* Can't create an object */
  395. #define TRER_CREATECLASS        8L        /* Can't create a class */
  396. #define TRER_NOLOCKPUBSCREEN    9L        /* Can't lock public screen */
  397. #define TRER_CREATEMENUS        12L       /* Error while creating the menus */
  398. #define TRER_GT_CREATECONTEXT   14L       /* Can't create gadget context */
  399.  
  400. #define TRER_MAXERRORNUM        15L       /* PRIVATE! */
  401.  
  402.  
  403. /* ////////////////////////////////////////////////////////////////////// */
  404. /* /////////////////////////////////////////////////// Object messages // */
  405. /* ////////////////////////////////////////////////////////////////////// */
  406.  
  407. #define TROM_ACTIVATE 23L                 /* Activate an object */
  408.  
  409.  
  410. /* ////////////////////////////////////////////////////////////////////// */
  411. /* ///////////////////////////////////////// Tags for TR_OpenProject() // */
  412. /* ////////////////////////////////////////////////////////////////////// */
  413.  
  414. /* Tag bases */
  415. #define TRTG_OAT              (TAG_USER+0x400)  /* Object attribute */
  416. #define TRTG_OBJ              (TAG_USER+0x100)  /* Object ID */
  417. #define TRTG_OAT2             (TAG_USER+0x80)   /* PRIVATE! */
  418. #define TRTG_PAT              (TAG_USER)        /* Project attribute */
  419. #define TRTG_SER(ser)         ((ser)<<11)       /* PRIVATE! */
  420.  
  421. /* Window/Project */
  422. #define TRWI_Title              (TRTG_PAT+0x01) /* STRPTR: The window title */
  423. #define TRWI_Flags              (TRTG_PAT+0x02) /* See below for window flags */
  424. #define TRWI_Underscore         (TRTG_PAT+0x03) /* char *: The underscore for menu and gadget shortcuts */
  425. #define TRWI_Position           (TRTG_PAT+0x04) /* Window position, see below */
  426. #define TRWI_CustomScreen       (TRTG_PAT+0x05) /* struct Screen * */
  427. #define TRWI_PubScreen          (TRTG_PAT+0x06) /* struct Screen *, must have been locked! */
  428. #define TRWI_PubScreenName      (TRTG_PAT+0x07) /* STRPTR, Triton is doing the locking */
  429. #define TRWI_PropFontAttr       (TRTG_PAT+0x08) /* struct TextAttr *: The proportional font */
  430. #define TRWI_FixedWidthFontAttr (TRTG_PAT+0x09) /* struct TextAttr *: The fixed-width font */
  431. #define TRWI_Backfill           (TRTG_PAT+0x0A) /* The backfill type, see below */
  432. #define TRWI_ID                 (TRTG_PAT+0x0B) /* ULONG: The window ID */
  433. #define TRWI_Dimensions         (TRTG_PAT+0x0C) /* struct TR_Dimensions * */
  434. #define TRWI_ScreenTitle        (TRTG_PAT+0x0D) /* STRPTR: The screen title */
  435. #define TRWI_QuickHelp          (TRTG_PAT+0x0E) /* BOOL: Quick help active? */
  436.  
  437. /* Menus */
  438. #define TRMN_Title              (TRTG_PAT+0x65) /* STRPTR: Menu */
  439. #define TRMN_Item               (TRTG_PAT+0x66) /* STRPTR: Menu item */
  440. #define TRMN_Sub                (TRTG_PAT+0x67) /* STRPTR: Menu subitem */
  441. #define TRMN_Flags              (TRTG_PAT+0x68) /* See below for flags */
  442.  
  443. /* General object attributes */
  444. #define TRAT_ID               (TRTG_OAT2+0x16)  /* The object's/menu's ID */
  445. #define TRAT_Flags            (TRTG_OAT2+0x17)  /* The object's flags */
  446. #define TRAT_Value            (TRTG_OAT2+0x18)  /* The object's value */
  447. #define TRAT_Text             (TRTG_OAT2+0x19)  /* The object's text */
  448. #define TRAT_Disabled         (TRTG_OAT2+0x1A)  /* Disabled object? */
  449. #define TRAT_Backfill         (TRTG_OAT2+0x1B)  /* Backfill pattern */
  450. #define TRAT_MinWidth         (TRTG_OAT2+0x1C)  /* Minimum width */
  451. #define TRAT_MinHeight        (TRTG_OAT2+0x1D)  /* Minimum height */
  452.  
  453.  
  454. /* ////////////////////////////////////////////////////////////////////// */
  455. /* ////////////////////////////////////////////////////// Window flags // */
  456. /* ////////////////////////////////////////////////////////////////////// */
  457.  
  458. #define TRWF_BACKDROP           0x00000001L     /* Create a backdrop borderless window */
  459. #define TRWF_NODRAGBAR          0x00000002L     /* Don't use a dragbar */
  460. #define TRWF_NODEPTHGADGET      0x00000004L     /* Don't use a depth-gadget */
  461. #define TRWF_NOCLOSEGADGET      0x00000008L     /* Don't use a close-gadget */
  462. #define TRWF_NOACTIVATE         0x00000010L     /* Don't activate window */
  463. #define TRWF_NOESCCLOSE         0x00000020L     /* Don't send TRMS_CLOSEWINDOW when Esc is pressed */
  464. #define TRWF_NOPSCRFALLBACK     0x00000040L     /* Don't fall back onto default PubScreen */
  465. #define TRWF_NOZIPGADGET        0x00000080L     /* Don't use a zip-gadget */
  466. #define TRWF_ZIPCENTERTOP       0x00000100L     /* Center the zipped window on the title bar */
  467. #define TRWF_NOMINTEXTWIDTH     0x00000200L     /* Minimum window width not according to title text */
  468. #define TRWF_NOSIZEGADGET       0x00000400L     /* Don't use a sizing-gadget */
  469. #define TRWF_NOFONTFALLBACK     0x00000800L     /* Don't fall back to topaz.8 */
  470. #define TRWF_NODELZIP           0x00001000L     /* Don't zip the window when Del is pressed */
  471. #define TRWF_SIMPLEREFRESH      0x00002000L     /* *** OBSOLETE *** (V3+) */
  472. #define TRWF_ZIPTOCURRENTPOS    0x00004000L     /* Will zip the window at the current position (OS3.0+) */
  473. #define TRWF_APPWINDOW          0x00008000L     /* Create an AppWindow without using class_dropbox */
  474. #define TRWF_ACTIVATESTRGAD     0x00010000L     /* Activate the first string gadget after opening the window */
  475. #define TRWF_HELP               0x00020000L     /* Pressing <Help> will create a TRMS_HELP message (V4) */
  476. #define TRWF_SYSTEMACTION       0x00040000L     /* System status messages will be sent (V4) */
  477.  
  478.  
  479. /* ////////////////////////////////////////////////////////////////////// */
  480. /* //////////////////////////////////////////////////////// Menu flags // */
  481. /* ////////////////////////////////////////////////////////////////////// */
  482.  
  483. #define TRMF_CHECKIT            0x00000001L     /* Leave space for a checkmark */
  484. #define TRMF_CHECKED            0x00000002L     /* Check the item (includes TRMF_CHECKIT) */
  485. #define TRMF_DISABLED           0x00000004L     /* Ghost the menu/item */
  486.  
  487.  
  488. /* ////////////////////////////////////////////////////////////////////// */
  489. /* ////////////////////////////////////////////////// Window positions // */
  490. /* ////////////////////////////////////////////////////////////////////// */
  491.  
  492. #define TRWP_DEFAULT            0L              /* Let Triton choose a good position */
  493. #define TRWP_BELOWTITLEBAR      1L              /* Left side of screen, below title bar */
  494. #define TRWP_CENTERTOP          1025L           /* Top of screen, centered on the title bar */
  495. #define TRWP_TOPLEFTSCREEN      1026L           /* Top left corner of screen */
  496. #define TRWP_CENTERSCREEN       1027L           /* Centered on the screen */
  497. #define TRWP_CENTERDISPLAY      1028L           /* Centered on the currently displayed clip */
  498. #define TRWP_MOUSEPOINTER       1029L           /* Under the mouse pointer */
  499. #define TRWP_ABOVECOORDS        2049L           /* Above coordinates from the dimensions struct */
  500. #define TRWP_BELOWCOORDS        2050L           /* Below coordinates from the dimensions struct */
  501.  
  502.  
  503. /* ////////////////////////////////////////////////////////////////////// */
  504. /* //////////////////////////////////// Backfill types / System images // */
  505. /* ////////////////////////////////////////////////////////////////////// */
  506.  
  507. #define TRBF_WINDOWBACK         0x00000000L     /* Window backfill */
  508. #define TRBF_REQUESTERBACK      0x00000001L     /* Requester backfill */
  509.  
  510. #define TRBF_NONE               0x00000002L     /* No backfill (= Fill with BACKGROUNDPEN) */
  511. #define TRBF_SHINE              0x00000003L     /* Fill with SHINEPEN */
  512. #define TRBF_SHINE_SHADOW       0x00000004L     /* Fill with SHINEPEN + SHADOWPEN */
  513. #define TRBF_SHINE_FILL         0x00000005L     /* Fill with SHINEPEN + FILLPEN */
  514. #define TRBF_SHINE_BACKGROUND   0x00000006L     /* Fill with SHINEPEN + BACKGROUNDPEN */
  515. #define TRBF_SHADOW             0x00000007L     /* Fill with SHADOWPEN */
  516. #define TRBF_SHADOW_FILL        0x00000008L     /* Fill with SHADOWPEN + FILLPEN */
  517. #define TRBF_SHADOW_BACKGROUND  0x00000009L     /* Fill with SHADOWPEN + BACKGROUNDPEN */
  518. #define TRBF_FILL               0x0000000AL     /* Fill with FILLPEN */
  519. #define TRBF_FILL_BACKGROUND    0x0000000BL     /* Fill with FILLPEN + BACKGROUNDPEN */
  520.  
  521. #define TRSI_USBUTTONBACK       0x00010002L     /* Unselected button backfill */
  522. #define TRSI_SBUTTONBACK        0x00010003L     /* Selected button backfill */
  523.  
  524.  
  525. /* ////////////////////////////////////////////////////////////////////// */
  526. /* ////////////////////////////////////////////// Display Object flags // */
  527. /* ////////////////////////////////////////////////////////////////////// */
  528.  
  529. /* General flags */
  530. #define TROF_RAISED             0x00000001L     /* Raised object */
  531. #define TROF_HORIZ              0x00000002L     /* Horizontal object \ Works automatically */
  532. #define TROF_VERT               0x00000004L     /* Vertical object   / in groups */
  533. #define TROF_RIGHTALIGN         0x00000008L     /* Align object to the right border if available */
  534.  
  535. /* Text flags for different kinds of text-related objects */
  536. #define TRTX_NOUNDERSCORE       0x00000100L     /* Don't interpret underscores */
  537. #define TRTX_HIGHLIGHT          0x00000200L     /* Highlight text */
  538. #define TRTX_3D                 0x00000400L     /* 3D design */
  539. #define TRTX_BOLD               0x00000800L     /* Softstyle 'bold' */
  540. #define TRTX_TITLE              0x00001000L     /* A title (e.g. of a group) */
  541. #define TRTX_SELECTED           0x00002000L     /* PRIVATE! */
  542.  
  543.  
  544. /* ////////////////////////////////////////////////////////////////////// */
  545. /* ////////////////////////////////////////////////////// Menu entries // */
  546. /* ////////////////////////////////////////////////////////////////////// */
  547.  
  548. #define TRMN_BARLABEL           (-1L)           /* A barlabel instead of text */
  549.  
  550.  
  551. /* ////////////////////////////////////////////////////////////////////// */
  552. /* /////////////////////////////////////////// Tags for TR_CreateApp() // */
  553. /* ////////////////////////////////////////////////////////////////////// */
  554.  
  555. #define TRCA_Name               (TAG_USER+1)
  556. #define TRCA_LongName           (TAG_USER+2)
  557. #define TRCA_Info               (TAG_USER+3)
  558. #define TRCA_Version            (TAG_USER+4)
  559. #define TRCA_Release            (TAG_USER+5)
  560. #define TRCA_Date               (TAG_USER+6)
  561.  
  562.  
  563. /* ////////////////////////////////////////////////////////////////////// */
  564. /* ///////////////////////////////////////// Tags for TR_EasyRequest() // */
  565. /* ////////////////////////////////////////////////////////////////////// */
  566.  
  567. #define TREZ_ReqPos             (TAG_USER+1)
  568. #define TREZ_LockProject        (TAG_USER+2)
  569. #define TREZ_Return             (TAG_USER+3)
  570. #define TREZ_Title              (TAG_USER+4)
  571. #define TREZ_Activate           (TAG_USER+5)
  572.  
  573.  
  574. /* ////////////////////////////////////////////////////////////////////// */
  575. /* ///////////////////////////////////////// The Application Structure // */
  576. /* ////////////////////////////////////////////////////////////////////// */
  577.  
  578. struct TR_App /* This structure is PRIVATE! */
  579. {
  580.   VOID *                        tra_MemPool;        /* The memory pool */
  581.   ULONG                         tra_BitMask;        /* Bits to Wait() for. THIS FIELD IS NOT PRIVATE! */
  582.   ULONG                         tra_LastError;      /* TRER code of last error */
  583.   STRPTR                        tra_Name;           /* Unique name */
  584.   STRPTR                        tra_LongName;       /* User-readable name */
  585.   STRPTR                        tra_Info;           /* Info string */
  586.   STRPTR                        tra_Version;        /* Version */
  587.   STRPTR                        tra_Release;        /* Release */
  588.   STRPTR                        tra_Date;           /* Compilation date */
  589.   struct MsgPort *              tra_AppPort;        /* Application message port */
  590.   struct MsgPort *              tra_IDCMPPort;      /* IDCMP message port */
  591.   VOID *                        tra_Prefs;          /* Pointer to Triton app prefs */
  592.   struct TR_Project *           tra_LastProject;    /* Used for menu item linking */
  593.   struct InputEvent *           tra_InputEvent;     /* Used for RAWKEY conversion */
  594. };
  595.  
  596.  
  597. /* ////////////////////////////////////////////////////////////////////// */
  598. /* ////////////////////////////////////////// The Dimensions Structure // */
  599. /* ////////////////////////////////////////////////////////////////////// */
  600.  
  601. struct TR_Dimensions
  602. {
  603.   UWORD                         trd_Left;           /* Left */
  604.   UWORD                         trd_Top;            /* Top */
  605.   UWORD                         trd_Width;          /* Width */
  606.   UWORD                         trd_Height;         /* Height */
  607.   UWORD                         trd_Left2;          /* Left */
  608.   UWORD                         trd_Top2;           /* Top */
  609.   UWORD                         trd_Width2;         /* Width */
  610.   UWORD                         trd_Height2;        /* Height */
  611.   BOOL                          trd_Zoomed;         /* Window zoomed? */
  612.   UWORD                         reserved[3];        /* For future expansions */
  613. };
  614.  
  615.  
  616. /* ////////////////////////////////////////////////////////////////////// */
  617. /* ///////////////////////////////////////////// The Project Structure // */
  618. /* ////////////////////////////////////////////////////////////////////// */
  619.  
  620. struct TR_Project /* This structure is PRIVATE! */
  621. {
  622.   struct TR_App *               trp_App;                        /* Our application */
  623.   struct Screen *               trp_Screen;                     /* Our screen, always valid */
  624.   ULONG                         trp_ScreenType;                 /* Type of screen (WA_...Screen) */
  625.  
  626.   ULONG                         trp_ID;                         /* The project's ID */
  627.  
  628.   struct Screen *               trp_LockedPubScreen;            /* Only valid if we're using a PubScreen */
  629.   STRPTR                        trp_ScreenTitle;                /* The screen title */
  630.  
  631.   struct Window *               trp_Window;                     /* The window */
  632.   struct AppWindow *            trp_AppWindow;                  /* AppWindow for icon dropping */
  633.  
  634.   ULONG                         trp_IDCMPFlags;                 /* The IDCMP flags */
  635.   ULONG                         trp_Flags;                      /* Triton window flags */
  636.  
  637.   struct NewMenu *              trp_NewMenu;                    /* The newmenu stucture built by Triton */
  638.   ULONG                         trp_NewMenuSize;                /* The number of menu items in the list */
  639.   struct Menu *                 trp_Menu;                       /* The menu structure */
  640.   UWORD                         trp_NextSelect;                 /* The next selected menu item */
  641.  
  642.   VOID *                        trp_VisualInfo;                 /* The VisualInfo of our window */
  643.   struct DrawInfo *             trp_DrawInfo;                   /* The DrawInfo of the screen */
  644.   struct TR_Dimensions *        trp_UserDimensions;             /* User-supplied dimensions */
  645.   struct TR_Dimensions *        trp_Dimensions;                 /* Private dimensions */
  646.  
  647.   ULONG                         trp_WindowStdHeight;            /* The standard height of the window */
  648.   ULONG                         trp_LeftBorder;                 /* The width of the left window border */
  649.   ULONG                         trp_RightBorder;                /* The width of the right window border */
  650.   ULONG                         trp_TopBorder;                  /* The height of the top window border */
  651.   ULONG                         trp_BottomBorder;               /* The height of the bottom window border */
  652.   ULONG                         trp_InnerWidth;                 /* The inner width of the window */
  653.   ULONG                         trp_InnerHeight;                /* The inner height of the window */
  654.   WORD                          trp_ZipDimensions[4];           /* The dimensions for the zipped window */
  655.   UWORD                         trp_AspectFixing;               /* Pixel aspect correction factor */
  656.  
  657.   struct MinList                trp_ObjectList;                 /* The list of display objects */
  658.   struct MinList                trp_MenuList;                   /* The list of menus */
  659.   struct MinList                trp_IDList;                     /* The ID linking list (menus & objects) */
  660.   VOID *                        trp_MemPool;                    /* The memory pool for the lists */
  661.   BOOL                          trp_HasObjects;                 /* Do we have display objects? */
  662.  
  663.   struct TextAttr *             trp_PropAttr;                   /* The proportional font attributes */
  664.   struct TextAttr *             trp_FixedWidthAttr;             /* The fixed-width font attributes */
  665.   struct TextFont *             trp_PropFont;                   /* The proportional font */
  666.   struct TextFont *             trp_FixedWidthFont;             /* The fixed-width font */
  667.   BOOL                          trp_OpenedPropFont;             /* \ Have we opened the fonts ? */
  668.   BOOL                          trp_OpenedFixedWidthFont;       /* /                            */
  669.   UWORD                         trp_TotalPropFontHeight;        /* Height of prop font incl. underscore */
  670.  
  671.   ULONG                         trp_BackfillType;               /* The backfill type */
  672.   struct Hook *                 trp_BackfillHook;               /* The backfill hook */
  673.  
  674.   struct Gadget *               trp_GadToolsGadgetList;         /* List of GadTools gadgets */
  675.   struct Gadget *               trp_PrevGadget;                 /* Previous GadTools gadget */
  676.   struct NewGadget *            trp_NewGadget;                  /* GadTools NewGadget */
  677.  
  678.   struct Requester *            trp_InvisibleRequest;           /* The invisible blocking requester */
  679.   BOOL                          trp_IsUserLocked;               /* Project locked by the user? */
  680.  
  681.   ULONG                         trp_CurrentID;                  /* The currently keyboard-selected ID */
  682.   BOOL                          trp_IsShortcutDown;             /* Shortcut key pressed? */
  683.   UBYTE                         trp_Underscore;                 /* The underscore character */
  684.  
  685.   BOOL                          trp_EscClose;                   /* Close window on Esc? */
  686.   BOOL                          trp_DelZip;                     /* Zip window on Del? */
  687.   BOOL                          trp_PubScreenFallBack;          /* Fall back onto default public screen? */
  688.   BOOL                          trp_FontFallBack;               /* Fall back to topaz.8? */
  689.  
  690.   UWORD                         trp_OldWidth;                   /* Old window width */
  691.   UWORD                         trp_OldHeight;                  /* Old window height */
  692.  
  693.   struct Window *               trp_QuickHelpWindow;            /* The QuickHelp window */
  694.   struct TROD_DisplayObject *   trp_QuickHelpObject;            /* Object for which help is popped up */
  695.   ULONG                         trp_TicksPassed;                /* IntuiTicks passed since last MouseMove */
  696. };
  697.  
  698.  
  699. /* ////////////////////////////////////////////////////////////////////// */
  700. /* ///////////////////////////// Default classes, attributes and flags // */
  701. /* ////////////////////////////////////////////////////////////////////// */
  702.  
  703. /* The following code has been assembled automatically from the class
  704.    sources and may therefore look somehow unstructured and chaotic :-) */
  705.  
  706. /* class_DisplayObject */
  707.  
  708. #define TROB_DisplayObject      (TRTG_OBJ+0x3C) /* A basic display object */
  709.  
  710. #define TRDO_QuickHelpString    (TRTG_OAT+0x1E3)
  711.  
  712. /* class_Group */
  713.  
  714. #define TRGR_Horiz              (TAG_USER+201)  /* Horizontal group */
  715. #define TRGR_Vert               (TAG_USER+202)  /* Vertical group */
  716. #define TRGR_End                (TRTG_OAT2+0x4B)/* End of a group */
  717.  
  718. #define TRGR_PROPSHARE          0x00000000L     /* Default: Divide objects proportionally */
  719. #define TRGR_EQUALSHARE         0x00000001L     /* Divide objects equally */
  720. #define TRGR_PROPSPACES         0x00000002L     /* Divide spaces proportionally */
  721. #define TRGR_ARRAY              0x00000004L     /* Top-level array group */
  722.  
  723. #define TRGR_ALIGN              0x00000008L     /* Align resizeable objects in secondary dimension */
  724. #define TRGR_CENTER             0x00000010L     /* Center unresizeable objects in secondary dimension */
  725.  
  726. #define TRGR_FIXHORIZ           0x00000020L     /* Don't allow horizontal resizing */
  727. #define TRGR_FIXVERT            0x00000040L     /* Don't allow vertical resizing */
  728. #define TRGR_INDEP              0x00000080L     /* Group is independant of surrounding array */
  729.  
  730. /* class_Space */
  731.  
  732. #define TROB_Space              (TRTG_OBJ+0x285)/* The spaces class */
  733.  
  734. #define TRST_NONE               1L              /* No space */
  735. #define TRST_SMALL              2L              /* Small space */
  736. #define TRST_NORMAL             3L              /* Normal space (default) */
  737. #define TRST_BIG                4L              /* Big space */
  738.  
  739. /* class_CheckBox */
  740.  
  741. #define TROB_CheckBox           (TRTG_OBJ+0x2F) /* A checkbox gadget */
  742.  
  743. /* class_Object */
  744.  
  745. #define TROB_Object             (TRTG_OBJ+0x3D) /* A rootclass object */
  746.  
  747. /* class_Cycle */
  748.  
  749. #define TROB_Cycle              (TRTG_OBJ+0x36) /* A cycle gadget */
  750.  
  751. #define TRCY_MX                 0x00010000L     /* Unfold the cycle gadget to a MX gadget */
  752. #define TRCY_RIGHTLABELS        0x00020000L     /* Put the labels to the right of a MX gadget */
  753.  
  754. /* class_DropBox */
  755.  
  756. #define TROB_DropBox            (TRTG_OBJ+0x38) /* An icon drop box */
  757.  
  758. /* class_Scroller */
  759.  
  760. #define TROB_Scroller           (TRTG_OBJ+0x35) /* A scroller gadget */
  761.  
  762. #define TRSC_Total              (TRTG_OAT+0x1E0)
  763. #define TRSC_Visible            (TRTG_OAT+0x1E1)
  764.  
  765. /* class_FrameBox */
  766.  
  767. #define TROB_FrameBox           (TRTG_OBJ+0x32) /* A framing box */
  768.  
  769. #define TRFB_GROUPING           0x00000001L     /* A grouping box */
  770. #define TRFB_FRAMING            0x00000002L     /* A framing box */
  771. #define TRFB_TEXT               0x00000004L     /* A text container */
  772.  
  773. /* class_Button */
  774.  
  775. #define TROB_Button             (TRTG_OBJ+0x31) /* A BOOPSI button gadget */
  776.  
  777. #define TRBU_RETURNOK           0x00010000L     /* <Return> answers the button */
  778. #define TRBU_ESCOK              0x00020000L     /* <Esc> answers the button */
  779. #define TRBU_SHIFTED            0x00040000L     /* Shifted shortcut only */
  780. #define TRBU_UNSHIFTED          0x00080000L     /* Unshifted shortcut only */
  781. #define TRBU_YRESIZE            0x00100000L     /* Button resizeable in Y direction */
  782. #define TRBT_TEXT               0L              /* Text button */
  783. #define TRBT_GETFILE            1L              /* GetFile button */
  784. #define TRBT_GETDRAWER          2L              /* GetDrawer button */
  785. #define TRBT_GETENTRY           3L              /* GetEntry button */
  786.  
  787. /* class_Line */
  788.  
  789. #define TROB_Line               (TRTG_OBJ+0x2D) /* A simple line */
  790.  
  791. /* class_Palette */
  792.  
  793. #define TROB_Palette            (TRTG_OBJ+0x33) /* A palette gadget */
  794.  
  795. /* class_Slider */
  796.  
  797. #define TROB_Slider             (TRTG_OBJ+0x34) /* A slider gadget */
  798.  
  799. #define TRSL_Min                (TRTG_OAT+0x1DE)
  800. #define TRSL_Max                (TRTG_OAT+0x1DF)
  801.  
  802. /* class_Progress */
  803.  
  804. #define TROB_Progress           (TRTG_OBJ+0x3A) /* A progress indicator */
  805.  
  806. /* class_Text */
  807.  
  808. #define TROB_Text               (TRTG_OBJ+0x30) /* A line of text */
  809.  
  810. #define TRTX_CLIPPED            0x00010000L     /* Text is clipped */
  811. /* class_Listview */
  812.  
  813. #define TROB_Listview           (TRTG_OBJ+0x39) /* A listview gadget */
  814.  
  815. #define TRLV_Top                (TRTG_OAT+0x1E2)
  816.  
  817. #define TRLV_READONLY           0x00010000L     /* A read-only list */
  818. #define TRLV_SELECT             0x00020000L     /* You may select an entry */
  819. #define TRLV_SHOWSELECTED       0x00040000L     /* Selected entry will be shown */
  820. #define TRLV_NOCURSORKEYS       0x00080000L     /* Don't use arrow keys */
  821. #define TRLV_NONUMPADKEYS       0x00100000L     /* Don't use numeric keypad keys */
  822. #define TRLV_FWFONT             0x00200000L     /* Use the fixed-width font */
  823. #define TRLV_NOGAP              0x00400000L     /* Don't leave a gap below the list */
  824.  
  825. /* class_Image */
  826.  
  827. #define TROB_Image              (TRTG_OBJ+0x3B) /* An image */
  828.  
  829. #define TRIM_BOOPSI             0x00010000L     /* Use a BOOPSI IClass image */
  830.  
  831. /* class_String */
  832.  
  833. #define TROB_String             (TRTG_OBJ+0x37) /* A string gadget */
  834.  
  835. #define TRST_INVISIBLE          0x00010000L     /* A password gadget -> invisible typing */
  836. #define TRST_NORETURNBROADCAST  0x00020000L     /* <Return> keys will not be broadcast to the window */
  837.  
  838. /* End of automatically assembled code */
  839.  
  840.  
  841. /* ////////////////////////////////////////////////////////////////////// */
  842. /* /////////////////////////////////////////////////////////// The End // */
  843. /* ////////////////////////////////////////////////////////////////////// */
  844.  
  845. #endif /* LIBRARIES_TRITON_H */
  846.